package com.kgc.dao;


import com.kgc.entity.MenuInfo;
import com.kgc.entity.vo.MenuInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
@Mapper
public interface MenuInfoDao {

    /**
     * 查询一级菜单
     * @return
     */
    List<MenuInfoVo> getOneMenuInfo(Integer roleId);

    /**
     * 根据一级菜单的ID 查询所对应的二级菜单
     * @param map  包含两个参数  roleId  pId
     * @return
     */
    List<MenuInfo> getTwoMenuInfo(Map<String,Object> map);

    /**
     * 查询所有菜单
     * @return
     */
    List<MenuInfo> getMenuInfoAll();

    /**
     * 根据菜单ID删除菜单（逻辑删除）
     * @param menuId
     * @return
     */
    int delMenuInfoById(Integer menuId,Integer status);

    /**
     * 查询所有的一级菜单
     * @return
     */
    List<MenuInfo> getMenuInfoOne();

    int addMenuInfo(MenuInfo menuInfo);

    MenuInfo getMenuInfoById(Integer id);

    int updateMenuInfo(MenuInfo menuInfo);

    int countMenuByPId(Integer menuId);

    /**
     * 查询菜单
     * @param pId 父级菜单ID  null 表示查询1级菜单  非null 表示查询二级菜单
     * @param roleId 角色ID
     * @return
     */
    List<Map<String,Object>> getMenuInfo(Integer pId,Integer roleId);

    List<Map<String,Object>> getCMenuInfo(Integer pId,Integer userId);
}
